import { defineStore } from 'pinia'
import { ElMessage, ElMessageBox } from 'element-plus'
import { index, sample, manage, error } from './menus/index.js'
export const useCounterStore = defineStore('counter', () => {
  // 分割出前两个路径
  const judegeRouter = (path) => {
    // 使用 split 方法分割路径
    const parts = path.split('/')
    // 仅保留前两个有效路径部分
    // 注意：因为路径以 / 开头，所以第一个元素是空字符串，有效路径从索引 1 开始
    const desiredParts = parts.slice(1, 3) // 使用 slice 获取第二个和第三个元素
    // 重新组合所需部分，确保结果以 / 开头
    const newPath = '/' + desiredParts.join('/')
    return newPath
  }
  // 封装表单验证方法
  const validateForm = (formInstance) => {
    return new Promise((resolve, reject) => {
      if (!formInstance) {
        reject(new Error('表单实例不存在'))
        return
      }
      formInstance.validate((valid) => {
        if (valid) {
          resolve() // 表单验证成功
        } else {
          reject(new Error('表单验证失败')) // 表单验证失败
        }
      })
    })
  }
  // 封装确认弹窗盒子
  const confirmBox = (msg, confirmBtn, cancelBtn, type, ok) => {
    ElMessageBox.confirm(msg, '温馨提示', {
      confirmButtonText: confirmBtn,
      cancelButtonText: cancelBtn,
      type: type
    })
      .then(() => {
        ok() // 执行确认操作
      })
      .catch((err) => {
        if (err === 'cancel') ElMessage({ type: 'info', message: '已取消操作' })
      })
  }

  return { index, sample, manage, error, judegeRouter, validateForm, confirmBox }
})
